#include <iostream>
#include <queue>
#include <list>
#include <string>
#include <vector>
using namespace std;

#include"a.h"
int main()
{
	Add(1, 2);
	Add(1.0, 2.0);

	return 0;
}


//template<class T>
//void PrintContainer(const list<T>& lt)
//{
//	list<T>::const_iterator it = lt.begin();
//	// ...
//}
//
//int main()
//{
//	vector<int> v;
//	v.push_back(1);
//	v.push_back(2);
//	v.push_back(3);
//
//	for (size_t i = 0; i < v.size(); ++i)
//	{
//		cout << v[i] << " ";
//	}
//	cout << endl;
//
//	list<int> lt;
//	PrintContainer(lt);
//
//	return 0;
//}
//int main()
//{
//	list<int> lt;
//	lt.push_back(0);
//	lt.push_back(1);
//	lt.push_back(2);
//	lt.push_back(3);
//	list<int>::iterator it = lt.begin();
//	while (it != lt.end())
//	{
//		cout << *it << " ";
//		it++;
//	}
//
//	cout << endl;
//
//	return 0;
//}


//struct Date
//{
//	Date(int year, int month, int day)
//		:_year(year)
//		, _month(month)
//		, _day(day)
//	{}
//
//	bool operator>(const Date& d) const
//	{
//		if ((_year > d._year)
//			|| (_year == d._year && _month > d._month)
//			|| (_year == d._year && _month == d._month && _day > d._day))
//		{
//			return true;
//		}
//		else
//		{
//			return false;
//		}
//	}
//
//	bool operator<(const Date& d) const
//	{
//		if ((_year < d._year)
//			|| (_year == d._year && _month < d._month)
//			|| (_year == d._year && _month == d._month && _day < d._day))
//		{
//			return true;
//		}
//		else
//		{
//			return false;
//		}
//	}
//
//	int _year;
//	int _month;
//	int _day;
//};
//
//template<class T>
//struct Greater {
//	bool operator()(const T& left, const T& right)
//	{
//		return left > right;
//	}
//};
//
//template<class T>
//struct Greater<T*> {
//	bool operator()(const T* left, const T* right)
//	{
//		return *left > *right;
//	}
//};
//
////template<>
////struct Greater<Date*> {
////	bool operator()(const Date* left, const Date* right)
////	{
////		return *left > *right;
////	}
////};
//
//int main()
//{
//	priority_queue<Date,vector<Date>,Greater<Date>> pq1;
//	pq1.push(Date(2003, 10, 18));
//	pq1.push(Date(2003, 10, 12));
//	pq1.push(Date(2003, 10, 26));
//
//	priority_queue<Date*, vector<Date*>, Greater<Date*>> pq2;
//	pq2.push(new Date(2003, 10, 18));
//	pq2.push(new Date(2003, 10, 12));
//	pq2.push(new Date(2003, 10, 26));
//
//	while (!pq1.empty())
//	{
//		cout << pq1.top()._year << "-" << pq1.top()._month << "-" << pq1.top()._day << endl;
//		pq1.pop();
//	}
//	while (!pq2.empty())
//	{
//		cout << pq2.top()->_year << "-" << pq2.top()->_month << "-" << pq2.top()->_day << endl;
//		pq2.pop();
//	}
//
//	return 0;
//}
//
//template<class T>
//bool Greater(T left,T right)
//{
//	return left > right;
//}
//
//template<>
//bool Greater<Date*>(Date* left,Date* right)
//{
//	return *left > *right;
//}
//
////template<class T1>
////bool Greater<T1*>(T1* left,T1* right)
////{
////	return *left > *right;
////}
//
//
//
//int main()
//{
//	Date d1(2023, 4, 4);
//	Date d2(2023, 4, 5);
//	Date* p1 = new Date(2003, 4, 5);
//	Date* p2 = new Date(2003, 4, 3);
//	cout << Greater(d1 , d2) << endl;
//	cout << Greater(p1 , p2) << endl;
//	return 0;
//}

//#include <array>
//
//using namespace std;
//
//int main()
//{
//	int a = 1;
//	const int N = 10;
//	int arr[N];
//	return 0;
//}